#ifndef _ZELESTE3D_Z3D_CORE_ZELASSERT_H_
#define _ZELESTE3D_Z3D_CORE_ZELASSERT_H_
	


#ifdef USE_ZEL_ASSERTIONS

	namespace z3d{
		namespace core{
			class Assert{
			public:
				Assert(bool condition, const char* file, int line, const char* format,...);
				~Assert(){};
			private:
				static const char* msDebugPrompt;
				static const size_t msDebugPromptLength;
				static const char* msMessagePrefix;
#ifdef ZEL_USE_ASSERT_WRITE_TO_MESSAGE_BOX
				static const char* m_messageBoxTitle;
#endif //ZEL_USE_ASSERT_WRITE_TO_MESSAGE_BOX
			};
		};
	};
		#define assertion(condition, format, ...) z3d::core::Assert(condition,  __FILE__, __LINE__, format, __VA_ARGS__) 
	#else
		#define assertion(condition, format, ...) assert(condition)
	#endif //USE_ZEL_ASSERTIONS
#endif //_ZELESTE3D_Z3D_CORE_ZELASSERT_H_
